#ifndef WATERMARKING_H
#define WATERMARKING_H

#include "arq.h"

#if ARQ_x86
	#include <stdlib.h>
	#include <stdio.h>
#endif

#include "logarithmic.h"
#include "synchronization.h"
#include "types.h"

/**
* @brief Buffer for the data treatment (double) 
*/
double data[MARK_SAMPLES];

/**
* @brief Buffer for the DWT transform (Information part)
*/
double approx[MARK_SPEC_HALF_SAMPLES]; 

/**
* @brief Buffer for the DWT transform (Detail part)
*/
double detail[MARK_SPEC_HALF_SAMPLES];

/**
* @brief Extract method for the watermark
*
* @param Memory address of the first byte where the watermark is hiden
*
* @return The mark
*/
unsigned long extractMethod(const sample_t dataShort);

/**
* @brief Embed method for the watermark
*
* @param Memory address of the first sample where to hide the mark
* @param The mark to hide
*/
void embedMethod(sample_t data, const unsigned long mark);

#endif /* WATERMARKING_H */
